from ril_api import API
import json
import re
import settings
import urllib2
import datetime
#import webbrowser
#import mechanize   #Algun dia a lo mejor lo uso

now = str(datetime.datetime.now())[:16]

re1 = re.compile('http://(www.)?youkioske(x)?.com/modules/video_plus/video_plus.php\?id=(\w+)')
re2 = re.compile('http://issuu.com/(.+)\?mode=embed')
re3 = re.compile('documentId=(\S+)"')


revistas = []
bajados = []
ril = API(settings.API_KEY)
s=json.loads(ril.get(settings.USER, settings.PASSWORD, state='unread'))
entries = s['list'] # esto es un dict
for e in entries.values():  # e es un dict
    if "youkioske" in e['url']:
        revistas.append((e['title'],e['url']))

for titulo,url in revistas:
    print "%s - tratando %s (%s)" % (now, titulo.encode('ascii', 'ignore'), url)
    f = urllib2.urlopen(url)
    t = f.read()
    s = re1.search(t)
    if not s:
        print "no encontrado ID"
        continue
    
    f = urllib2.urlopen(s.group(0))    
    t = f.read()
    s = re2.search(t)
    if not s:
        print "Web de documento no encontrado"
        continue
    web = "http://issuu.com/" + s.group(1)
    
    #webbrowser.open(web, autoraise=False)
   
    f = urllib2.urlopen(web)
    t = f.read()
    s = re3.search(t)
    if not s:
        print "no encontrado documentId"
        continue 

    new = [ { "url":"%s" % ('http://issuu.com/prv/originalfile/' + s.group(1),), "title":"%s" % ("ipad_"+titulo,) }, ]
    ril.send(settings.USER, settings.PASSWORD, new=new)
    bajados.append(url)

bajados2 = [{"url":x} for x in bajados]
ril.send(settings.USER, settings.PASSWORD, read=bajados2)  #marcamos como leidos los periodicos bajados OK   


    #para que esto funciones firefox tiene que autentificarse directamente en issuu.com
    #webbrowser.open('http://issuu.com/prv/originalfile/' + s.group(1), autoraise=False)
    
    
    
#    pdf = url.strip("/")
#    pdf = pdf[pdf.rfind("/")+1:]
#    pdf = pdf.strip("-")
#    
#    print "%s: bajando %s" % (datetime.now(), pdf,)
#    ( stat, output ) = commands.getstatusoutput( "java -jar jissuuDownloader.jar -d %s" % (url,) )
#    if( stat == 0 ): 
#        s=pdf_re.search(output)
#        if s:
#            shutil.move(s.group(2)+s.group(1)+'.pdf', pdf+'.pdf')
#            ( stat, output ) = commands.getstatusoutput( "calibredb add %s" % (pdf+'.pdf' ))
#            if( stat == 0 ):
#                bajados.append(url)
#                shutil.rmtree(s.group(2))
#                shutil.os.unlink(pdf+ '.pdf')
#            else:
#                print "ERROR: Fallo al subir a calibre: %s" % output
#        else:
#            print "ERROR: %s ha fallado" % (pdf)
#    else:
#        print "ERROR: Ejecucion de jissuuDownloader ha fallado: %s" % output
#
#                        
